package com.cskaoyan.clspath;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * @ClassName com.cskaoyan.clspath.ClspathDemo1
 * @Description: TODO
 * @Author 远志 zhangsong@cskaoyan.onaliyun.com
 * @Date 2023/2/8 9:07
 * @Version V1.0
 **/
public class ClspathDemo1 {

    public static void main(String[] args) {
        //需要借助于类加载器来获取位于classpath目录下的文件路径
        //首先需要获取加载当前类的类加载器
        ClassLoader classLoader = ClspathDemo1.class.getClassLoader();
        //下面这个方法就是用于获取位于classpath目录下文件的资源信息
        //里面需要填充的参数是文件相对于classpath的相对路径
        //getResource的返回值是URL，你可以理解为这是路径等一系列其他信息的一个封装体，通过getPath()获取文件的路径
        String path = classLoader.getResource("1.properties").getPath();
        System.out.println(path);

        //类加载器其他的方法还有一个，可以直接获取到流
        //下面这个方法和上面的方法本质来说是一致的，获取到路径之后，获取流应该不成问题
        InputStream inputStream = classLoader.getResourceAsStream("1.properties");
        Properties properties = new Properties();
        try {
            //properties.load(inputStream);
            properties.load(new FileInputStream(new File(path)));
            String username = properties.getProperty("username");
            String password = properties.getProperty("password");
            System.out.println(username);
            System.out.println(password);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
